SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TDMOVI_CAJA_I01]            
/*-------------------------------------------------------*/            
/*---Empresa              : OFISIS S.A.                --*/            
/*---Cliente              : OFISIS        --*/            
/*---Sistema              : Tesoreria                  --*/            
/*---Mödulo               : Empresa                    --*/            
/*---Programa             : Grabaciön Detalle          --*/            
/*---                       Movimiento Caja            --*/            
/*---                       (Egresos)                  --*/              
/*---Script               : tdbanc_p.sql               --*/            
/*---Nombre SP            : SP_TDMOVI_CAJA_I01         --*/            
/*---Desarrollado por     : Javier Flores A.           --*/            
/*---Fecha Creaciön       : 18/06/1999                 --*/            
/*---Base Datos           : Microsoft Sql Server       --*/            
/*---Versiön              : 7.0                        --*/            
/*---Invoca a SP          :                            --*/            
/*-------------------------------------------------------*/            
            
/*-------------------------------------------------------*/            
/*---Modificado 1 por     : EVP                        --*/            
/*---Fecha Modificaciön   : 03/04/2001                 --*/             
/*---Detalle Modificaciön : Permite grabar Docs. Clientes en Egresos--*/            
/*-------------------------------------------------------*/           
/*-------------------------------------------------------*/          
/*---Modificado 2 por     : Reynaldo Menacho           --*/          
/*---Fecha Modificaciön   : 22/04/2005                 --*/           
/*---Detalle Modificaciön : Busqueda del estado actual --*/    
/*---       o anterior       --*/          
/*---      de los documentos         --*/         
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/            
/*---Comentarios                                       --*/            
/*---                                                  --*/            
/*---                                                  --*/            
/*-------------------------------------------------------*/            
            
/*-------------------------------------------------------*/            
/*---Drop Proc SP_TDMOVI_CAJA_I01                      --*/            
/*---Grant Execute on SP_TDMOVI_CAJA_I01 to public     --*/             
/*---SP_TDMOVI_CAJA_I01                                --*/            
/*-------------------------------------------------------*/            
 @ISCO_EMPR   TD_VC_002,             
 @ISCO_USUA_MODI  TD_VC_008_USUA,            
 @ISCO_CAJA   TD_VC_008,             
 @ISAA_CAJA   TD_VC_004,             
 @ISMM_CAJA   TD_VC_002,             
 @ISTI_MOVI   TD_VC_001,              
 @ISNU_COMP_CAJA  TD_VC_008,             
 @INNU_SECU   TD_IN_001,            
 @ISTI_ENTI   TD_VC_001,            
 @ISCO_ENTI   TD_VC_020,            
 @ISTI_DOCU_ENTI  TD_VC_003,            
 @ISNU_DOCU_ENTI  TD_VC_020,            
 @ISCO_MONE_DOCU  TD_VC_003,            
 @IDFE_DOCU   TD_DT_001,            
 @INIM_DOCU   TD_NU_016_004,            
 @INIM_SALD_DOCU  TD_NU_016_004,            
 @INIM_DETA   TD_NU_016_004,            
 @ISDE_OBSE   TD_VC_100,            
 @ISST_CIER_DOCU  TD_VC_001_SINO,            
 @INIM_DETA_NEGA  TD_NU_016_004,            
 @ISTI_DOCU   TD_VC_003,            
 @INFA_TIPO_CAMB  TD_NU_015_006,            
 @ISCO_MONE    TD_VC_003,            
 @INIM_SALD_CONV  TD_NU_016_004,            
 @ISNU_CORR_COMP  TD_VC_020,            
 @ISTI_MOVI_OPER  TD_VC_001,            
 @ISCO_CNTA_EMPR  TD_VC_020,            
 @ISCO_ORDE_SERV  TD_VC_020,            
 @IDFE_VENC             TD_DT_001,            
 @IDFE_PROG             TD_DT_001,            
 @INNU_SECU_PRPA        TD_IN_001,      
 @INFA_CAMB_EXTR  TD_NU_015_006      
 As      
Declare             
    @VNNU_SECU TD_IN_001,     @VNIM_MOVI_ANTE  TD_NU_016_004,  @VNIM_TOTA TD_NU_016_004,            
    @VNIM_CONV_ANTE TD_NU_016_004,   @VNNU_REGI TD_IN_001,    @VSST_SIGN TD_VC_001,            
    @VNIM_TOTA_CLIE TD_NU_016_004, @VNIM_TOTA_PROV  TD_NU_016_004, @VNIM_CONV_DOCU TD_NU_016_004,         
    @VSCO_MONE_NACI TD_VC_003, @VSCO_MONE_EXTR TD_VC_003, @VSCO_ESTA_LETR   TD_VC_003,            
    @VNIM_TOTA_DIST TD_NU_016_004, @VSTI_CAMB TD_VC_001, @VSTI_ORIG TD_VC_001, @VDFE_OPER TD_DT_001,            
    @VSCO_COND_CONT TD_VC_003, @VSTI_DOCU_RETE TD_VC_003, @VSNO_ENTI TD_VC_100, @VSNU_RUCC TD_VC_020,            
    @VSNU_SERI TD_VC_008, @VSST_APRO_CXPA TD_VC_001, @VSCO_ESTA_ORIG TD_VC_003,       
 @VSCO_MONE_MOVI TD_VC_003, @VNFA_CAMB_EXTR TD_NU_015_006            
            
 Begin Tran SP_TDMOVI_CAJA_I01            
            
     SELECT @VSCO_MONE_NACI = CO_MONE_DEFA,            
       @VSCO_MONE_EXTR = CO_MONE_EXTR,            
       @VSCO_COND_CONT = CO_COND_CONT,            
            @VSST_APRO_CXPA = ST_APRO_CXPA            
     FROM TMPARA_TESO            
     WHERE CO_EMPR = @ISCO_EMPR            
            
  /* Comprobande de Retencion de IGV */            
     Select  @VSTI_DOCU_RETE = TI_DOCU            
     From    TTDOCU_CNTB            
     Where   ST_DOCU_0021 = 'S'            
            
  If Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''        
    -- Se busca el estado actual del documento        
       Exec SP_TTESTA_ORIG_Q02 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI, @VSCO_ESTA_ORIG output        
            
 If @ISCO_MONE_DOCU != @ISCO_MONE            
 Begin            
  Select @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG            
  From TTFACA_OPCI            
  Where CO_EMPR = @ISCO_EMPR            
  And CO_MODU = 'TEEM0001'            
  And CO_MENU = 'FTEEMAS'            
        
  If @VSTI_CAMB Is Null            
   Select @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG            
   From TMPARA_TESO            
   Where CO_EMPR = @ISCO_EMPR            
        
  Select @VDFE_OPER = FE_OPER, @VNFA_CAMB_EXTR = FA_CAMB_EXTR      
  From   TCMOVI_CAJA            
  Where  CO_EMPR = @ISCO_EMPR             
  and    CO_CAJA = @ISCO_CAJA            
  and    AA_CAJA = @ISAA_CAJA            
  and    MM_CAJA = @ISMM_CAJA            
  and    TI_MOVI = @ISTI_MOVI            
  and    NU_COMP_CAJA = @ISNU_COMP_CAJA             
       
  Select @VNIM_CONV_DOCU = (Select OFITESO.dbo.FN_TCFACT_CAMB_Q05(@ISCO_MONE, @ISCO_MONE_DOCU,             
  @VDFE_OPER, @INIM_DETA, @VSTI_CAMB, @VSTI_ORIG, 'N', @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @INFA_TIPO_CAMB))           
        
        
  Select @VNIM_CONV_DOCU = Round(@VNIM_CONV_DOCU, 2)            
       
  Select @VSCO_MONE_MOVI = CO_MONE      
  From TMCAJA      
  Where  CO_EMPR = @ISCO_EMPR             
  and    CO_CAJA = @ISCO_CAJA      /*    
       
  If @ISCO_MONE_DOCU != @VSCO_MONE_NACI And @ISCO_MONE_DOCU != @VSCO_MONE_EXTR         
   Select @VNIM_CONV_DOCU = Round(dbo.FN_TCFACT_CAMB_Q04(@ISCO_MONE, @ISCO_MONE_DOCU,                     
   @INIM_DETA, @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @VDFE_OPER, @INFA_TIPO_CAMB, @INFA_CAMB_EXTR), 2)        
        
  Else If @VSCO_MONE_MOVI != @VSCO_MONE_NACI And @VSCO_MONE_MOVI != @VSCO_MONE_EXTR        
   Select @VNIM_CONV_DOCU = Round(dbo.FN_TCFACT_CAMB_Q03(@ISCO_MONE, @ISCO_MONE_DOCU,                     
   @INIM_DETA, @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @INFA_TIPO_CAMB, @VNFA_CAMB_EXTR), 2)        
        
  Else        
   Select @VNIM_CONV_DOCU = Round(dbo.FN_TCFACT_CAMB_Q03(@ISCO_MONE, @ISCO_MONE_DOCU,                     
   @INIM_DETA, @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @INFA_TIPO_CAMB, @INFA_CAMB_EXTR), 2) */       
 End            
     Else            
        Select @VNIM_CONV_DOCU = @INIM_DETA                    
                   
     If @INNU_SECU IS NULL            
        Begin            
          Select @VNNU_SECU   = NU_SECU            
          From   TDMOVI_CAJA            
          Where  CO_EMPR = @ISCO_EMPR            
          and    CO_CAJA = @ISCO_CAJA            
          and    AA_CAJA = @ISAA_CAJA            
          and    MM_CAJA = @ISMM_CAJA             
          and    TI_MOVI = @ISTI_MOVI            
          and    NU_COMP_CAJA = @ISNU_COMP_CAJA            
            
          If @VNNU_SECU > 0            
             Select @VNNU_SECU = @VNNU_SECU + 1            
          Else            
             Select @VNNU_SECU = 1          
          
    IF @ISTI_DOCU_ENTI = @VSTI_DOCU_RETE            
      Begin          
     Select @VSNU_SERI = Substring(@ISNU_DOCU_ENTI, 1, Patindex('%-%', @ISNU_DOCU_ENTI)-1)             
           
      /* Genero el œltimo correlativo para el documento comp. de retenci½n */            
      Exec SP_TTULTI_CORR_I01 @ISCO_EMPR, @ISCO_USUA_MODI, @ISTI_DOCU_ENTI, @VSNU_SERI, @ISNU_DOCU_ENTI OUTPUT          
   End          
          
          
   Insert into TDMOVI_CAJA (CO_EMPR, CO_CAJA, AA_CAJA, MM_CAJA, TI_MOVI,            
    NU_COMP_CAJA, NU_SECU, TI_ENTI, CO_ENTI, TI_DOCU_ENTI, NU_DOCU_ENTI, CO_MONE_DOCU, FE_DOCU,            
    FE_VENC, FE_PROG, IM_DOCU, IM_SALD_DOCU, IM_DETA, IM_CONV_DOCU, DE_OBSE,            
    ST_CIER_DOCU, IM_DETA_NEGA, IM_SALD_CONV, NU_CORR_COMP,             
    TI_MOVI_OPER, CO_CNTA_EMPR, CO_ORDE_SERV, NU_SECU_PRPA, FA_CAMB_EXTR, CO_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,        
FE_USUA_MODI)            
   Values (@ISCO_EMPR, @ISCO_CAJA, @ISAA_CAJA, @ISMM_CAJA, @ISTI_MOVI,            
    @ISNU_COMP_CAJA, @VNNU_SECU, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI, @ISCO_MONE_DOCU, @IDFE_DOCU,        
@IDFE_VENC, @IDFE_PROG,             
    @INIM_DOCU, @INIM_SALD_DOCU, @INIM_DETA, @VNIM_CONV_DOCU, @ISDE_OBSE, @ISST_CIER_DOCU, @INIM_DETA_NEGA, @INIM_SALD_CONV,         
           
    @ISNU_CORR_COMP, @ISTI_MOVI_OPER, @ISCO_CNTA_EMPR, @ISCO_ORDE_SERV, @INNU_SECU_PRPA, @INFA_CAMB_EXTR, @ISCO_USUA_MODI,        
@ISCO_USUA_MODI, GETDATE(), GETDATE())            
            
   If @@error <> 0            
     Begin            
    Rollback Tran SP_TDMOVI_CAJA_I01            
    Return            
     End                
            
         If @VSST_APRO_CXPA = 'S'            
     Begin        
    Update TDPROG_PAGO            
    Set   TI_SITU = 'PAG',          
    FE_USUA_MODI = getdate(),          
    CO_USUA_MODI = @ISCO_USUA_MODI          
    Where CO_EMPR     = @ISCO_EMPR            
    And  CO_PROV      = @ISCO_ENTI            
    And  CO_TIPO_DOCU = @ISTI_DOCU_ENTI            
    And  NU_DOCU_PROV = @ISNU_DOCU_ENTI            
    And  NU_SECU      = @INNU_SECU_PRPA            
            
            If @@error <> 0            
              Begin            
                Rollback Tran SP_TDMOVI_CAJA_I01            
                Return            
              End                
     End        
        
     If @ISST_CIER_DOCU = 'S' And Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''        
    Begin        
      --Se cancela el documento y se graba en tabla de kardex de estados de documentos        
      Exec SP_TTACTU_PAGO_Q01 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,         
          @INIM_SALD_DOCU, 'PAG', @ISCO_USUA_MODI, @ISST_CIER_DOCU     ---- MIGUEL    
            
     If @@error <> 0          
       Begin          
      Rollback Tran SP_TDMOVI_CAJA_I01          
      Return          
       End              
    End        
     Else         
    If @ISST_CIER_DOCU = 'N' And Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''        
      Begin        
     --Se cancela el documento y se graba en tabla de kardex de estados de documentos        
     Exec SP_TTACTU_PAGO_Q01 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,         
          @VNIM_CONV_DOCU, @VSCO_ESTA_ORIG, @ISCO_USUA_MODI, @ISST_CIER_DOCU        
            
     If @@error <> 0          
       Begin          
      Rollback Tran SP_TDMOVI_CAJA_I01          
      Return          
       End              
      End        
        End            
Else             
       Begin            
         Select @VNIM_CONV_ANTE = Isnull(IM_CONV_DOCU,0)            
         From  TDMOVI_CAJA            
         Where CO_EMPR = @ISCO_EMPR            
         And   CO_CAJA = @ISCO_CAJA            
         And   AA_CAJA = @ISAA_CAJA            
         And   MM_CAJA = @ISMM_CAJA            
         And   TI_MOVI = @ISTI_MOVI            
         And   NU_COMP_CAJA = @ISNU_COMP_CAJA            
         And   NU_SECU = @INNU_SECU             
            
   If Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''        
    Update TDMOVI_CAJA            
          Set IM_DETA = @INIM_DETA,            
              IM_CONV_DOCU = @VNIM_CONV_DOCU,            
              DE_OBSE = @ISDE_OBSE,            
              ST_CIER_DOCU = @ISST_CIER_DOCU,            
              IM_DETA_NEGA = @INIM_DETA_NEGA,            
              FE_USUA_MODI = getdate(),            
              CO_USUA_MODI = @ISCO_USUA_MODI            
          Where CO_EMPR = @ISCO_EMPR            
          And   CO_CAJA = @ISCO_CAJA            
          And   AA_CAJA = @ISAA_CAJA            
          And   MM_CAJA = @ISMM_CAJA            
          And   TI_MOVI = @ISTI_MOVI            
          And   NU_COMP_CAJA = @ISNU_COMP_CAJA            
          And   NU_SECU = @INNU_SECU            
   Else        
    Update TDMOVI_CAJA            
    Set TI_MOVI_OPER = @ISTI_MOVI_OPER,          
   CO_CNTA_EMPR = @ISCO_CNTA_EMPR,          
   TI_ENTI = @ISTI_ENTI,          
   CO_ENTI = @ISCO_ENTI,          
   CO_ORDE_SERV = @ISCO_ORDE_SERV,         
   IM_DETA = @INIM_DETA,          
   IM_CONV_DOCU = @VNIM_CONV_DOCU,                        
   DE_OBSE = @ISDE_OBSE,          
   ST_CIER_DOCU = @ISST_CIER_DOCU,          
   IM_DETA_NEGA = @INIM_DETA_NEGA,          
   FE_USUA_MODI = getdate(),          
   CO_USUA_MODI = @ISCO_USUA_MODI          
          Where CO_EMPR = @ISCO_EMPR            
          And   CO_CAJA = @ISCO_CAJA            
          And   AA_CAJA = @ISAA_CAJA            
          And   MM_CAJA = @ISMM_CAJA            
          And   TI_MOVI = @ISTI_MOVI            
          And   NU_COMP_CAJA = @ISNU_COMP_CAJA            
          And   NU_SECU = @INNU_SECU            
        
          If @@error <> 0            
            Begin            
              Rollback Tran SP_TDMOVI_CAJA_I01            
             Return            
            End                
            
    Select @VNIM_CONV_DOCU = @VNIM_CONV_DOCU - @VNIM_CONV_ANTE        
        
          If @ISST_CIER_DOCU = 'S' And Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''        
   Begin        
     --Se cancela el documento y se graba en tabla de kardex de estados de documentos        
     Exec SP_TTACTU_PAGO_Q01 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,         
         @VNIM_CONV_DOCU, 'PAG', @ISCO_USUA_MODI, @ISST_CIER_DOCU        
        
    If @@error <> 0          
      Begin          
     Rollback Tran SP_TDMOVI_CAJA_I01          
     Return          
      End              
   End        
          Else         
   If @ISST_CIER_DOCU = 'N' And Rtrim(Isnull(@ISCO_CNTA_EMPR, '')) = ''        
     Begin        
    --Se cancela el documento y se graba en tabla de kardex de estados de documentos        
    Exec SP_TTACTU_PAGO_Q01 @ISCO_EMPR, @ISTI_ENTI, @ISCO_ENTI, @ISTI_DOCU_ENTI, @ISNU_DOCU_ENTI,         
         @VNIM_CONV_DOCU, @VSCO_ESTA_ORIG, @ISCO_USUA_MODI, @ISST_CIER_DOCU        
        
    If @@error <> 0          
      Begin          
     Rollback Tran SP_TDMOVI_CAJA_I01          
     Return          
      End              
     End        
            
        End            
            
     Select @VNIM_MOVI_ANTE  = Isnull(IM_MOVI,0)             
     FROM   TCMOVI_CAJA            
     WHERE  CO_EMPR = @ISCO_EMPR             
     and    CO_CAJA = @ISCO_CAJA            
     and    AA_CAJA = @ISAA_CAJA            
     and    MM_CAJA = @ISMM_CAJA             
     and    TI_MOVI = @ISTI_MOVI            
     and    NU_COMP_CAJA = @ISNU_COMP_CAJA      
            
     /* Sumo todos los documentos de clientes */            
            
     Select @VNIM_TOTA_CLIE = Isnull(Sum(Isnull(IM_DETA_NEGA,0)),0)            
     From TDMOVI_CAJA            
     Where CO_EMPR = @ISCO_EMPR            
     And   CO_CAJA = @ISCO_CAJA            
     And   AA_CAJA = @ISAA_CAJA            
     And   MM_CAJA = @ISMM_CAJA            
     And   TI_MOVI = @ISTI_MOVI            
     And   NU_COMP_CAJA = @ISNU_COMP_CAJA            
     And TI_ENTI = 'C'            
            
     /* Sumo todos los documentos de proveedores */            
            
     Select @VNIM_TOTA_PROV = Isnull(Sum(Isnull(IM_DETA_NEGA,0)),0)            
     From TDMOVI_CAJA            
     Where CO_EMPR = @ISCO_EMPR            
     And   CO_CAJA = @ISCO_CAJA            
     And   AA_CAJA = @ISAA_CAJA            
     And   MM_CAJA = @ISMM_CAJA            
     And   TI_MOVI = @ISTI_MOVI            
     And   NU_COMP_CAJA = @ISNU_COMP_CAJA            
     And   TI_ENTI = 'P'            
            
     Select  @VNIM_TOTA_DIST = Isnull(Sum(Isnull(IM_DETA_NEGA,0)),0)             
     From    TDMOVI_CAJA            
     Where   CO_EMPR = @ISCO_EMPR            
           And CO_CAJA = @ISCO_CAJA            
           And AA_CAJA = @ISAA_CAJA            
           And MM_CAJA = @ISMM_CAJA            
      And TI_MOVI = @ISTI_MOVI            
           And NU_COMP_CAJA = @ISNU_COMP_CAJA            
           And TI_ENTI != 'P'            
           And TI_ENTI != 'C'            
            
     Select  @VNIM_TOTA = ISNULL(@VNIM_TOTA_PROV,0) + ISNULL(@VNIM_TOTA_CLIE,0) + ISNULL(@VNIM_TOTA_DIST,0)            
            
     Update TCMOVI_CAJA            
     Set IM_MOVI = Round(@VNIM_TOTA,2),            
         CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = getdate()                     
     Where CO_EMPR = @ISCO_EMPR             
     And   CO_CAJA = @ISCO_CAJA            
     And   AA_CAJA = @ISAA_CAJA            
     And   MM_CAJA = @ISMM_CAJA             
     And   TI_MOVI = @ISTI_MOVI            
     And   NU_COMP_CAJA = @ISNU_COMP_CAJA            
            
     If @@error <> 0            
        Begin            
            Rollback Tran SP_TDMOVI_CAJA_I01            
     Return            
End              
            
            
/* Retencion de IGV */            
            
 IF @ISTI_DOCU_ENTI = @VSTI_DOCU_RETE            
 BEGIN            
            
  Select  @VSNO_ENTI = NO_AUXI, @VSNU_RUCC = NU_RUCS            
  From  TMAUXI_EMPR             
  Where  CO_EMPR = @ISCO_EMPR            
   And TI_AUXI_EMPR = @ISTI_ENTI            
   And CO_AUXI_EMPR = @ISCO_ENTI            
            
            
  Insert Into TCCOMP_RETE            
   (CO_EMPR, NU_COMP_RETE, FE_COMP_RETE, FA_TIPO_CAMB, CO_PROV, NO_PROV, NU_RUCC,             
    CO_CAJA, AA_BACA, MM_BACA, NU_COMP_BACA, TI_SITU, CO_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, FE_USUA_MODI)            
  Values (@ISCO_EMPR, @ISNU_DOCU_ENTI, @IDFE_DOCU, @INFA_TIPO_CAMB, @ISCO_ENTI,             
   @VSNO_ENTI, @VSNU_RUCC, @ISCO_CAJA, @ISAA_CAJA, @ISMM_CAJA, @ISNU_COMP_CAJA,             
   'ACT', @ISCO_USUA_MODI, @ISCO_USUA_MODI, GETDATE(), GETDATE())            
            
  If @@error <> 0            
         Begin            
            Rollback Tran SP_TDMOVI_CAJA_I01            
       Return            
         End              
            
/*            
  IF @ISCO_MONE != @VSCO_MONE_DEFA            
   Insert Into TDCOMP_RETE            
    (CO_EMPR, NU_COMP_RETE, TI_DOCU, NU_DOCU, FE_EMIS, IM_TOTA_CONV, IM_PAGO_CONV,             
IM_RETE_CONV, CO_USUA_MODI)            
   Select  CO_EMPR, @ISNU_DOCU_ENTI, TI_DOCU, NU_DOCU, FE_EMIS,             
    Round(IM_TOTA_CONV/@INFA_TIPO_CAMB, 2), Round(IM_PAGO_CONV/@INFA_TIPO_CAMB, 2),             
    Round(IM_RETE_CONV/@INFA_TIPO_CAMB, 2), @ISCO_USUA_MODI            
   From #TWRETE_CAJA            
  Else            
*/            
  Insert Into TDCOMP_RETE            
   (CO_EMPR, NU_COMP_RETE, NU_SECU, TI_DOCU, NU_DOCU, FE_EMIS, IM_TOTA_CONV, IM_PAGO_CONV,             
   IM_RETE_CONV, CO_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, FE_USUA_MODI)            
  Select  CO_EMPR, @ISNU_DOCU_ENTI, NU_SECU, TI_DOCU, NU_DOCU, FE_EMIS, IM_TOTA_CONV,             
   IM_PAGO_CONV, IM_RETE_CONV, @ISCO_USUA_MODI, @ISCO_USUA_MODI, GETDATE(), GETDATE()            
  From  #TWRETE_CAJA            
            
  If @@error <> 0            
    Begin            
            Rollback Tran SP_TDMOVI_CAJA_I01            
       Return            
           End            
              
  Insert INTO             
  TMDOCU_PROV(CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,             
   CO_TIPO_OPER, CO_COND_PAGO, CO_UNID_CONC, FE_VENC,             
   FE_EMIS, FE_PROG_PAGO, FE_REGI_COMP, FA_TIPO_CAMB, CO_MONE,             
   IM_BRUT_AFEC, IM_BRUT_INAF, IM_GAFI, IM_MORA, IM_FLET,             
   ST_AFEC_GAFI, ST_AFEC_MORA, ST_AFEC_FLET, ST_DCT1_BRAF, ST_DCT1_BRIN,             
   ST_DCT1_GAFI, ST_DCT1_MORA, ST_DCT1_FLET, ST_DCT2_BRAF, ST_DCT2_BRIN,             
   ST_DCT2_GAFI, ST_DCT2_MORA, ST_DCT2_FLET, PC_DCT1, IM_DCT1,             
   PC_DCT2, IM_DCT2, PC_IMP1, IM_IMP1,             
   PC_IMP2, IM_IMP2, PC_IMP3, IM_IMP3, IM_TOTA,             
   IM_PAGA, CO_ESTA_DOCU, ST_CONT, TI_PROV, CO_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, FE_USUA_MODI)            
  VALUES( @ISCO_EMPR, @ISCO_ENTI, @VSTI_DOCU_RETE, @ISNU_DOCU_ENTI,             
   '998', @VSCO_COND_CONT, '001', @IDFE_DOCU,             
   @IDFE_DOCU, @IDFE_DOCU, @IDFE_DOCU, @INFA_TIPO_CAMB, @ISCO_MONE_DOCU,            
   @INIM_DOCU, 0, 0, 0, 0,            
   'N', 'N', 'N','N', 'N',             
   'N', 'N', 'N','N', 'N',             
   'N', 'N', 'N', 0, 0,             
   0, 0, 0, 0,             
   0, 0, 0, 0, @INIM_DOCU,            
   @INIM_DOCU, 'PAG', 'N', 'J', @ISCO_USUA_MODI, @ISCO_USUA_MODI, GETDATE(), GETDATE())            
            
  If @@error <> 0            
         Begin            
            Rollback Tran SP_TDMOVI_CAJA_I01            
       Return            
         End            
              
  DELETE #TWRETE_CAJA            
 END            
            
/* FIN Retencion de IGV */            
            
            
commit Tran SP_TDMOVI_CAJA_I01            
            
/*------------------------ Fin ------------------------------*/
GO
